Skip to content

プロセスの生成

プロセスの概念についての詳細は、aoプロセスのコンセプトを参照してください。このガイドでは、ao connectを使用してプロセスを生成する方法に焦点を当てています。

プロセスを生成するには、ArweaveにアップロードされたaoモジュールのTXIDが必要です。このモジュールはプロセスのソースコードです。プロセス自体は、そのソースのインスタンス化です。

また、スケジューラーユニット(SU)のウォレットアドレスも必要です。この指定されたSUは、このプロセスのスケジューラとして機能します。つまり、システム内のすべてのノードは、このプロセスに対してこのSUに読み書きする必要があることを知ることができます。以下のアドレスを使用できます。

利用可能なスケジューラのウォレットアドレス

lua
TZ7o7SIZ06ZEJ14lXwVtng1EtSx60QkPy-kh-kdAXog

Spawning a Process in NodeJS

js
import { readFileSync } from "node:fs";

import { createDataItemSigner, spawn } from "@permaweb/aoconnect";

const wallet = JSON.parse(
  readFileSync("/path/to/arweave/wallet.json").toString(),
);

const processId = await spawn({
  // The Arweave TXID of the ao Module
  module: "module TXID",
  // The Arweave wallet address of a Scheduler Unit
  scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA",
  // A signer function containing your wallet
  signer: createDataItemSigner(wallet),
  /*
    Refer to a Processes' source code or documentation
    for tags that may effect its computation.
  */
  tags: [
    { name: "Your-Tag-Name-Here", value: "your-tag-value" },
    { name: "Another-Tag", value: "another-value" },
  ],
});

Spawning a Process in a browser

js
import { createDataItemSigner, spawn } from "@permaweb/ao-sdk";

const processId = await spawn({
  // The Arweave TXID of the ao Module
  module: "module TXID",
  // The Arweave wallet address of a Scheduler Unit
  scheduler: "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA",
  // A signer function containing your wallet
  signer: createDataItemSigner(globalThis.arweaveWallet),
  /*
    Refer to a Processes' source code or documentation
    for tags that may effect its computation.
  */
  tags: [
    { name: "Your-Tag-Name-Here", value: "your-tag-value" },
    { name: "Another-Tag", value: "another-value" },
  ],
});